class Solution:
    def myPow(self, x: float, n: int) -> float:
        def calc(n):
            nonlocal x
            try:
                res=1.0
                now=x
                while n!=0:
                    if n%2==1:
                        res*=now
                    now*=now
                    n//=2
                return res
            except OverflowError:
                return 0.0
        return calc(n) if n>0 else 1.0/calc(-n)

s=Solution()
print(s.myPow(2.0,2))

'''
执行用时：
36 ms
, 在所有 Python3 提交中击败了
86.94%
的用户
内存消耗：
13.5 MB
, 在所有 Python3 提交中击败了
25.05%
的用户
'''